Method and system for secure content distribution

ABSTRACT

A system on a chip (SOC) device is disclosed comprising external outputs, and external inputs. A first secure storage location is operably decoupled from all of the external outputs of the SOC device during a normal mode of operation. By being decoupled from all external outputs, representations of the data stored at the first secure device are prevented from being provided to the external outputs. The decryption engine is also included on the system on a chip, comprising a first data input, and a private key input coupled to a first portion of the first secure storage location, and an output coupled to a second secure location. The decryption engine is operable to determine decrypted data from data received at the first data input based upon a private key received at the private key input. The decryption engine is further operable to write the decrypted data only to the first secure memory location and the second secure location.

CROSS-REFERENCE TO RELATED APPLICATION(S)

The present application is a continuation of U.S. patent applicationSer. No. 10/830,242 filed on Apr. 22, 2004, entitled “METHOD AND SYSTEMFOR SECURE CONTENT DISTRIBUTION,” which claims priority to U.S.Provisional Application No. 60/545,089, filed Feb. 17, 2004, entitled“METHODS AND PROCESSES FOR SECURE CONTENT DISTRIBUTION AND RIGHTSMANAGEMENT,” the entireties of which are incorporated by referenceherein.

FIELD OF THE DISCLOSURE

The present disclosure relates generally to providing securecommunications and more particularly to a device and methods ofprotecting data used in secure communications.

BACKGROUND

Several forms of digital audio and video content are available toconsumers. Audio and video content can be provided through media, suchas compact disks (CD) or digital versatile disks (DVD). Serviceproviders can be used to present audio and video content by broadcastingdigital audio and video content to consumers, such as through broadbandnetwork services, digital cable broadcasts, or digital satellite andterrestrial transmissions. Generally, there are ownership rightsassociated with the audio and video content and consumers pay forservices to receive the audio and video content.

To protect ownership rights, several methods are undertaken to secureaudio and video content and ensure only valid consumers receive thecontent. For example, video associated with DVDs is generally scrambledto prevent undesired copying of DVD video content. Similarly, videocontent transmitted through digital satellite or digital cablebroadcasts can be scrambled to only allow paying consumers to descramblethe video content. Encryption and scrambling techniques use secret keyor codeword values that are supposed to only be available to a deviceassociated with the consumer, such as a digital cable, or digitalsatellite, set-top box. Once the secret key and/or codeword valuesbecome public knowledge, an unauthorized consumer is capable ofdescrambling protected audio and video content.

From the above discussion, it should be apparent that systems andmethods of providing secured key and codeword protection would beuseful.

BRIEF DESCRIPTION OF THE DRAWINGS

Specific embodiments of the present disclosure are shown and describedin the drawings presented herein. Various advantages, features andcharacteristics of the present disclosure, as well as methods,operations and functions of related elements of structure, and thecombination of parts and economies of manufacture, will become apparentupon consideration of the following description and claims withreference to the accompanying drawings, all of which form a part of thisspecification, and wherein:

FIG. 1 is a block diagram illustrating a system for processing scrambledinformation according to one embodiment of the present disclosure;

FIG. 2 is a block diagram illustrating a decoupling between a protectedstorage device that can be decoupled from external interfaces of asystem on a chip according to one embodiment of the present disclosure;

FIG. 3 is a block diagram illustrating a private key storage device thatcan be decoupled from external interfaces of a system on a chipaccording to one embodiment of the present disclosure;

FIG. 4 is a diagram illustrating a method of providing content between aservice provider and a consumer according to one embodiment of thepresent disclosure;

FIGS. 5 and 6 are flow diagrams illustrating specific embodiment ofdecoupling protected memory from external interfaces of a system on achip.

DETAILED DESCRIPTION OF THE FIGURES

At least one embodiment of the present disclosure provides a system on achip (SOC) for processing secure data. The SOC includes external outputinterfaces for providing information from the SOC to an externalcomponent or device. The SOC also includes external input interfaces forproviding information to the SOC device from the external component ordevice. The SOC includes a first storage location that is operablyde-coupled from all external nodes of the SOC. The first storagelocation is operably de-coupled so as to prevent representations of datastored in the first storage location from being provided at an externaloutput interface. The SOC also includes a decryption engine having afirst data input, and a private key input coupled to a first portion ofthe first secure storage location. In one embodiment, a sensitivedecryption key, such as the private key, is stored in the first portionof the first secure storage location. The decryption engine is capableof decrypting data received through the first data input based on thesensitive decryption key and the decryption engine is further capable ofstoring decrypted data only to secure memory. In one embodiment of thepresent disclosure, the SOC is capable of performing decryption anddescrambling using sensitive decryption key and codeword values storedin storage locations internal to the SOC. Accordingly, access tosensitive decryption and descrambling values can be limited to thedecryption engine and descrambler, and cannot be accessed external tothe SOC. An advantage of at least one embodiment of the presentdisclosure is that sensitive values can be protected from maliciousattacks designed to pirate protected audio or video content.

For purposes of discussion, the following terms are described. Contentpertains to audio or video or other data that is interchanged betweencomponents, such as a service provider, consumer or gateway. A mediumfor the transfer of content can include, but is not limited to,satellite, cable or terrestrial broadcasts, CD, DVD, network, Internet,telephone line transmission or other mediums. A service providerincludes a company or party that produces or distributes content orprovides a service that facilitates the transfer of content. A consumerincludes a device or party that receives and consumes content, typicallyas part of an agreement with the service provider. A gateway representsa device or party that provides an interface for the transfer of contentbetween a service provider and a consumer. In one embodiment, a gatewaymay also operate as a consumer. A pirate includes a party or device thatuses illegal or fraudulent methods to receive, duplicate, orre-distribute content, provided by a service provider, intended for aconsumer.

Several methods for protecting transferred content from beingintercepted by pirates exist. For the purposes of discussion, generalmethods used will be discussed and described; however, it should beappreciated that more specific methods are known in the art and thespecific method used can be selected without departing from the scope ofthe present disclosure. Scrambling is an algorithm that uses a seedvalue, referred to as a codeword, to modify large amounts of data insuch a way that the data can be de-scrambled using the same codeword.Without the value of the codeword, the scrambled data is not sensible.Examples of scrambling techniques used in the art include, but are notlimited to, the Data Encryption Standard (DES), the Triple DataEncryption Standard (3DES), the Advanced Encryption Standard (AES), andthe Digital Video Broadcast (DVB) encryption standard. The codewordincludes a binary value, generally in multiples of 64 bits, that is usedto scramble content. It should be noted that codewords can also includemultiple binary values, such as initial vectors and sets of system keys,and that the codeword can change for a given set of content.

As compared to scrambling, encryption is a computationally complexoperation that is used in public/private key pairs systems to conceal asmall amount of data, which may only be decrypted using an alternatekey. Specific examples of encryption include, but are not limited to,the Rivest, Shamir and Adleman (RSA) encryption standard, or theElliptical Curve Cryptography (ECC) standard. A public key includes abinary value that is used as a seed value in an encryption algorithm.The public key is generally used to encrypt/decrypt messages or values,such as codeword values. A public key is not considered secret and isfreely transmitted to others. Generally, messages encrypted using aspecific device's public key can only be decrypted using the specificdevice's private key. The private key includes a binary value that isused as a seed value in encryption/decryption algorithms. The privatekey is considered secret and not to be distributed to other devices.

Referring now to FIG. 1, a block diagram illustrating a system forprocessing scrambled information, such as video content, is shownaccording to one embodiment of the present disclosure. A system 100 isshown acting as a gateway for communication between a service provider102 and a consumer 106. The service provider 102 provides scrambledcontent, at interface 171 or 177, containing content to be received bythe consumer 106. System 100 ensures security by handlingauthentication, scrambling/descrambling of the content, andencryption/decryption of sensitive values used to scramble contentbefore re-transmission to the consumer 106. The system 100 includes asystem on a chip (SOC), such as SOC 120, which is capable of internallystoring and generating sensitive values, such as codeword 155, andprivate key 175. To prevent descrambling of scrambled content, such asscrambled content transmitted over interfaces 171, 173, 174, 177 and178, from pirates, sensitive values, such as private key 175 are keptinternal to SOC 120 in a secure storage location 170 and can not beaccessed external to SOC 120. In one embodiment of the presentdisclosure, a network interface 104 provides the transfer ofinformation, such as authentication and service requests, or thetransfer of scrambled content or data between the service provider 102,the system 100 and the consumer 106. The network interface 104 canrepresent one of a plurality of different network interfaces, includingbut not limited to an Ethernet interface, a wireless broadcast interfaceor a modem and a telephone line, where the type of network interface canbe chosen without departing from the scope of the present disclosure.

The system 100 includes the SOC 120, used to securely process scrambledcontent, such as content received at interfaces 171 or 173, dynamicstorage 110 used to store unscrambled content, a system decoder 115 usedto decode the content for display, and a local bus 105 used to transferscrambled content, such as scrambled content and messages provided overinterfaces 173, 177 and 179 between the system 100 and the networkinterface 104 and external storage 108. In one embodiment of the presentdisclosure, external storage 108 is used by system 100 for the storageof scrambled content 179.

In one embodiment of the present disclosure, SOC 120 includes codewordgenerator 180, a secure storage location (private key storage) 170having at least one private key 175, a secure storage location(protected storage) 150 having at least one codeword 155, anencryption/decryption block 160, a scrambler/descrambler 130, contentreceiver 140, public storage (other memory) 125 having a uniqueidentifier (ID) 126 and a public key 127, a transcoder 135, internaldecoder 137 and watermark block 134. The scrambler/descrambler 130includes a codeword input 131 for interfacing with protected storage150, a data input 132 for interfacing with content receiver 140 and adata output for interfacing with local bus 105. SOC 120 is used toprocess security associated with the handling of scrambled content, suchas scrambled content received over interfaces 171 or 174, provided fromservice provider 102. Note that service provider 102 is illustrated asproviding content over both the interface 171 and the interface 174. Itwill be appreciated that the service providers 102 may be a commonservice provider, or different service providers. For example, theservice provider 102 could be a service provider whereby the contentreceived at interface 171 is received over a terrestrial or cableconnection, whereas the service provider 102 may be the same or adifferent service provider that is shown to provide scrambled content toalternate interface 174, such as the Internet. In addition, even thoughthe scrambled content at interface 177 to the local bus 105 is notillustrated as being receivable at the data-in port 132, it will beappreciated that the interfaces illustrated as providing scrambledcontent within the SOC 120 may actually be common or shared interfacesor interfaces that can otherwise share data amongst themselves. However,in accordance with the present disclosure, the interfaces, whethershared or individual, need to remain decoupled from the protectedstorage locations 150 and 170 as further described herein.

In one embodiment, system 100 includes a watermark module 134. Watermarkmodule 134 can be used to encode content stored in dynamic storage 110with a value associated with system 100 or SOC 120, such as unique ID126. The value is encoded into the content in a manner so that the valuecan be extracted from the content at a later time. Accordingly, thewatermark can be used to track which system or SOC was compromised toextract the content should the content be pirated. It will beappreciated that while the watermark 134 is not specifically illustratedto be connected to any specific component, that the watermark module 134could be connected in a variety of embodiments. In one embodiment, thewatermark module 134 would be connected to the interface 183 between thescrambler/descrambler 130 to insert watermark encoding into the contentprior to its being stored in dynamic storage 110. In alternateembodiments, the watermark could be connected to the interconnects 181or 182 to allow for insertion of the watermark encoding aftertranscoding of information by the transcoder 135, or after the internaldecoding by internal decoder 137 of the content received over interface181.

Scrambled content is secured through the use of secret values, such ascodeword 155 and private key 175. In one embodiment of the presentdisclosure, system 100 and SOC 120 operate in a blind encryption schemewhere the secret values represented by the private keys are notobservable outside of SOC 120 by controlling access to the portions ofmemory used to store those values. A system where a source anddestination system each operate in blind encryption mode is referred toas a double-blind encryption system, or a double-blind security system,or a double-blind decryption system.

In a specific embodiment, before a source will provide protected contentto a destination it will need to verify that the destination is a blindencryption system, thereby ensuring double-blind operation. Likewise,the destination can verify that a source is a blind encryption system toensure double-blind operation. Encryption/decryption block 160 includesan encryption engine 161 and a decryption engine 162. The encryptionengine 162 uses a provided public key, such as public key 107 to encrypta value to be transmitted external to SOC 120. It should be noted thatthe values of the public keys used by the encryption engine 161 can beaccessed from protected storage 150 or from other memory associated withsystem 100 or SOC 120, such as memory 125. Public keys are typicallyknown outside of SOC 120 and do not need to be protected. The decryptionengine 162 uses private key 175 to decrypt encrypted informationprovided to SOC 120. It should be noted that data decrypted bydecryption engine 162 should be stored in a secured location, such asprotected storage 150 or private key storage 170. Secret values, such ascodeword 155 should not be provided external to SOC 120 before beingencrypted by encryption engine 161.

Interfaces between SOC 120 and local bus 105, dynamic storage 110,system decoder 115 and service provider 102 represent input interfacesallowing information to be provided to SOC 120 and output interfacesallowing information to be provided from SOC 120. SOC 120 ensures theintegrity of scrambled content at interface 173 by protecting secretvalues and secure storage locations, such private key storage 170 andprotected storage 150, from access at any of the interfaces. In oneembodiment of the present disclosure, SOC 120 performs tighter securityon more critical, or sensitive, information. For example, Table 1 showsa list of different types of information associated with the securetransport of content. TABLE 1 Values Associated with Secure Content Vs.Security Criticality Information Type Security Criticality CommentPrivate Key 1 Most Critical Group Key 2 Service Key 3 CW 4 Digital HD 5Content Digital SD 6 content Analog Content 7 Encrypted Key 8 EncryptedCW 9 Public key 10 Scrambled 11 Least Critical Content Etc . . .

As shown, in Table 1, some values associated with the processing ofsecure content are considered more critical to security, such as privatekey 175 and codeword 155, than others. A measurement of securitycriticality presented is meant to illustrate a ranking of how valuable aparticular information type is to the integrity of a secure system.Information types having a lower valve security criticality ranking,i.e., 1, would be more damaging to the integrity of a secure system ifdiscovered than information types having a higher security criticalityranking. The criticality of an information type, in relation tosecurity, can be lessened by altering the associated information, so itis unusable, such as by encrypting a codeword value or scramblingcontent. It should be appreciated that while Table 1 provides uniquesecurity criticality rankings for each information type, severalinformation types may be assigned to a same security criticalityranking. A security criticality ranking as provided in Table 1 can allowfor system definitions that may dictate how information types at orbelow a particular security criticality value would be protected. Forexample, an information type having a security criticality ranking of‘1’ can indicate that neither data nor a representation of the dataassociated with the information type be provided at an output associatedwith a secure system, such as SOC 120. In one embodiment of the presentdisclosure, private key storage 170 and protected storage 150 representstorage locations operably de-coupled from external interfaces of SOC120 during a normal operating mode. Accordingly, SOC 120 protectsprivate key 175 and codeword 155 from external access.

Referring now to FIG. 2, a block diagram illustrates storage 150(FIG. 1) to be decoupled from external input and output interfacesassociated with SOC 120, according to one embodiment of the presentdisclosure. In one embodiment of the present disclosure, SOC 120includes external interfaces 210 and 220, and decoupling modules 215 and225. External output interface 210 is used to interface to externalcomponents of system 100, such as local bus 105, and provideinformation, such as scrambled content over interface 173, from SOC 120to the external components. Similarly, external input interface 220 canbe used to provide information from the external components to SOC 120.Decoupling modules 215 and 225 may provide an interface betweenprotected storage 150 and external output interface 210 and externalinput interface 220, respectively, to provide access to the protectedstorage in limited circumstances.

In one embodiment, decoupling modules 215 and 225 provide access toportions of protected storage 150 during a test mode of SOC 120.Decoupling module 225 can provide write access to protected storage 150,through data line 222 and address line 224, allowing external inputinterface 220 to store information in protected storage 150 for thepurposes of testing or loading initial values. Decoupling module 215 canbe used to provide read access to protected storage 150 to externaloutput interface 210 during a test mode of SOC 120, thereby providingdata through data line 212. In one embodiment, external interfaces 210and 220 include test interfaces associated with SOC 120, such as a JTAGtest interface, or other data interfaces. Accordingly, decouplingmodules 210 and 220 can be used to store and read values into protectedstorage 150 during the test mode.

When operating in a secure mode, the decoupling modules 210 and 220 willprevent information stored in protected storage 150, such as the codeword 155, from being provided to the external output interface 210. As aresult, it will not be possible either through the execution of internalinstructions, or by accessing external interfaces 210 and 220 toretrieve data stored within protected storage 150. This is accomplishedin one embodiment, by disabling logic in the decoupling module 215 aftertest mode and/or module 225 through the assertion of specific controlbits to disable logic associated with accessing stored information.Alternatively, a physical destruction of a fuse, or fuse-type connectioncan also be implemented to disable the logic coupling of protectedstorage 150 from the external output interface 210.

In an alternate embodiment, the decoupling module 225 operates todestroy any data stored at protected storage 150 as part of entering atest mode. In this embodiment, once the data is destroyed and test modeis fully entered, the user would be able to store and read informationfrom protected storage 150. However, the information being stored andread would be information provided solely by the user. Informationstored during test mode in protected storage 150 would not be observableexternal the system once test mode is exited. Data stored during testmode may or may not be observable during test mode, depending uponspecific implementations.

In yet another alternate embodiment, any access to the protected storage150 during a mode other than test mode, would result in the data beingdestroyed prior to it being read. A further embodiment would result inindeterminate, or predetermined value to be returned when an addressrequest of protected storage 150 is made to decoupling module 225. Forexample, in response to receiving an address as part of a read requestto protected storage 150, the decoupling module 225 can communicate withdecoupling module 215 to provide a dummy data to the external outputinterface 210, thereby bypassing the protected storage 150. Thiscommunication can be through protected storage 150, or bypass protectedstorage 150. Based upon these embodiments, it will be appreciated thatboth the decoupling module 215 and the decoupling module 225 can bedisabled, or that in an alternative implementation, the decouplingmodule 225 may remain enabled, and possibly not even exist.

It will be further appreciated, that the decoupling modules 215 and 225may actually represent the lack of specific circuitry implementing theability to provide information within protected storage 150 to theoutput interface 210. In other words, even during a test mode, or anyother mode of operation, the decoupling module 215 could represent thelack of interface connections prohibiting protected data, such as thecode word 155 from ever being provided to an output interface of theSOC. It would be appreciated in such an implementation, that thefunctionality of the protected storage 150 would need to be verifiedusing alternative test methods, such as providing specific coded data tobe descrambled and sent external for verification. Note that where atest mode of operation, and a secure mode of operation (also referred toas a normal mode of operation) exists, the decoupling modules 215 and225 are designed as such to implement a one-way security enable, wherebyafter implemented, it is not possible to disable the security measureswhich prohibit observability of the protected storage 150, which isexternal SOC 120.

In one embodiment, write access to codeword 155 during normal operationis only allowed through encryption/decryption block 160 and codewordgenerator 180. Once decoupling modules 215 and 225 are disabled, directaccess to protected storage 150 is no longer available to externalinterfaces 210 and 220. Accordingly, the value of codeword 155 is readaccessible only internal to SOC 120, for use at the codeword input 131of scrambler/descrambler 130 and at a data input of encryption engine161. The SOC is designed so that the only representation of the value ofcodeword 155 is only provided external to SOC 120 by first encryptingthe value of codeword 155.

Referring now to FIG. 3, a block diagram illustrating a decoupling ofprivate key storage 170 (FIG. 1) from external input and outputinterfaces associated with SOC 120, according to one embodiment of thepresent disclosure. In one embodiment, during a test mode, decouplingmodule 320 provides write access of private key storage 170 to externalinput interface 220. Similarly, during the test mode, decoupling module310 can provide read access of information at private key storage 170 toexternal output interfaces 210. In an alternate embodiment, no readaccess is provided to storage 170 during any mode of operation. Duringthe test mode, or an initialization of SOC 120, decoupling module 320can also be used to store a private key value into a portion of privatekey storage 170, such as private keys 175 and/or 176. In one embodiment,once the test mode or initialization mode are completed, decouplingmodules 310 and 320 are disabled to decouple the storage location 170from the external output interface 210, and/or to external inputinterface 220 to prevent further access to private key storage 170. Inone embodiment, decoupling modules 310 and 320 are permanently disabled,and only the decryption engine 162 of the encryption/decryption block160 has access to private key storage 170 at the private key input ofthe decryption engine 161. In one embodiment, write access to privatekey storage 170 is provided to the decryption engine 162 ofencryption/decryption block 160 to allow encrypted private keys,decrypted by the decryption engine 162 using private key 175, to bewritten into private key storage 170, such as to private key 176. In analternate embodiment, only read access of private key storage 170 isallowed and values of private keys, such as private keys 175 and 176,cannot be read accessed by other components of SOC 120 or external toSOC 120. Accordingly, more critical values are kept internal to SOC 120and only less critical values, such as public key 127, scrambled orencrypted values, are provided external to SOC 120. Decoupling modules320 and 310 may operate in a manner similar to modules 215 and 225 ofFIG. 2.

Referring back to FIG. 1, in one embodiment of the present disclosure,SOC 120 receives scrambled content 171 provided by a service provider,such as service provider 102, intended for a particular consumer, suchas consumer 106, connected to network interface 104. The scrambledcontent 171 is typically scrambled using a codeword generated by theservice provider 102. The service provider codeword is encrypted using apublic key 127 associated with SOC 102. The decryption engine 162 ofencryption/decryption block 160 is capable of decrypting the encryptedvalue of the received codeword using the value of private key 175. Thedecrypted codeword value is then stored in protected storage 150 andused by scrambler/descrambler 130 to descramble the scrambled content.The codeword is only accessible by scrambler/descrambler 130 fordescrambling scrambled content. It should be noted that additionalcodewords could be stored in protected storage 150. Furthermore, accessto some of the additional codeword portions of protected storage 150 canbe made inaccessible by the encryption/decryption block 160. In oneembodiment, a portion of protected storage 150, used to store dataprovided by the decryption engine 162, is secured so that the data isnot provided external to SOC 120 in an unencrypted or scrambled form.For example, it may be desirable for codewords from external sources instorage 150, such as codewords from service provider 102, to not beaccessible by the encryption/decryption module 160.

In one embodiment of the present disclosure, private key 175 is storedinto private key storage 170 as part of a write-once function associatedwith test or initialization, in which the value of private key 175 canno longer be altered. Furthermore, the value of private key 175 can beuniquely assigned to SOC 120 and other chips similar to SOC 120 will beassigned a different private key value. Similarly, the values of publickey 127 and unique ID 126 are uniquely assigned to SOC 120. In oneembodiment of the present disclosure, a method of authenticationreferred to as digital signing, is disabled in encryption/decryptionblock 160 by not allowing the decryption engine 162 ofencryption/decryption block 160 to send decrypted messages to anyexternal output interface. Digital signing can be exploited, such asthrough the use of a Trojan Horse attack, to uncover the value of asecret codeword, such as codeword 155. By disabling and/or preventingdigital signing, SOC 120 can be protected from such an attack. In oneembodiment of the present disclosure, encryption/decryption block 160 isfurther capable of performing encryption operations in parallel withother functions of system 100. Serial execution of decryption codegenerates measurable changes in current draw that can be detectedexternal to SOC 120 to exploit private keys, such as private key 175. Incomparison to serial execution of decryption code, parallel execution ofdecryption code by the decryption engine 162 cannot be as readilydetected. Accordingly, encryption operations can be hidden from externalmonitoring of system 100.

In one embodiment, the descrambled content is stored in dynamic storage110, prior to display. In another embodiment, the descrambled content isre-scrambled using an internal codeword, codeword 155, which may be acodeword provided by service provider 102 or generated by the codewordgenerator 180, prior to storage in dynamic storage 110. Re-scrambledcontent can be stored, along with an encrypted value of codeword 155,external to system 100, such as in storage 108.

As identified in Table 1, scrambled content is not considered critical.By being scrambled with a particular codeword value, such as codeword155, the scrambled content cannot be unscrambled without the knowledgeof the codeword. Accordingly, scrambled content is generally stored withan encrypted version of the codeword used to scramble the content. Inone embodiment, a codeword used to scramble stored data is encryptedusing public key 127, associated with SOC 120 and stored with thescrambled content. It should be noted that more than one codeword can beused by SOC 120. In one embodiment, stored content can be associatedwith a time in which the content can be decrypted, such as a contentexpiration date. Such an expiration date can be a timecode used by theencryption/decryption block 160 or scrambler/descrambler 130 todetermine if the stored content is valid. Alternatively, system 100 canbe used to clear stored content based on a timecode associated with thestored content. In another embodiment, codeword values stored with thestored content expire as old codeword values are replaced by new valuesgenerated by codeword generator 180. Similar to scrambled content storedby SOC 120, scrambled content sent to consumer 106 is sent with acodeword encrypted using the consumer's public key 107, associated withchip 103 of consumer 106. Accordingly, only consumer 106 can decrypt thecodeword, using a private key 105 known only internal to chip 103 ofconsumer 106, and then descramble the scrambled content.

In one embodiment, codeword generator 180 is used to generate randomvalues and stores the random values as codeword 155 for use by thescrambling engine of the scrambler/descrambler 130. When multiplecodewords are generated, new content is scrambled using the newlygenerated codeword values, the prior value of the codeword is no longeruseful for descrambling newly scrambled content. In one embodiment,access to a portion of protected storage 150 used for storing codeword155 is only accessible by codeword generator 180 to assure that noexternal devices are allowed to dictate and/or alter the values ofcodeword 155.

In one embodiment of the present disclosure, transcoder 135 modifies thereceived content that is stored in dynamic storage 110. Transcoder 135is capable of altering a bit-rate and/or resolution associated withcontent stored in dynamic memory 110. For example, the bit-rate and/orresolution associated with the content stored in dynamic memory 110 canbe reduced to only a portion of the maximum bit-rate or resolutionassociated with the content, such as to a standard bit-rate and/orresolution, or can be reduced to match a lower bit-rate or resolutionaccepted by consumer 106. By reducing the bit-rate and/or resolutionassociated with content stored in dynamic memory 110, an overall valueof the stored content can be reduced. For example, if a piratecompromises the content, the value of the compromised content is lowereddue to the quality of the content being degraded from a maximum qualityassociated with the content. In one embodiment of the presentdisclosure, the internal decoder 137, associated with the SOC 120, isused to provide decoded content to the portion of system 100 externalchip 120.

In one embodiment of the present disclosure, other secure systemsinterfacing with system 100, such as consumer 106 include chips similarto SOC 120, such as chip 103. Accordingly, a double-blind encryptionscheme can be incorporated in which neither a source system nor adestination system has direct or indirect observability to the value ofits own private key for export directly or as an encoded representation.Accordingly, the values of the private keys can be protected fromattacks made on the systems to determine the values of the private keys.The ability of a source system to communicate with a destination systemcan be based upon the ability of both systems being blind systems,thereby assuring a double blind encryption scheme is used.

Referring now to FIG. 4, a flow diagram illustrating a method ofproviding content between a service provider, such as service provider102 (FIG. 1), and a consumer, such as consumer 106 (FIG. 1) is shown,according to one embodiment of the present disclosure. In theillustrated embodiment, the consumer 106 is associated with an ID 101, apublic key 107, and includes chip 103, having a protected private key105. System 100 (FIG. 1) is associated with a unique ID 126, a publickey 127 and includes SOC 120 having a protected private key 175associated with the system 100. Service provider 102 is associated witha public key 109. System 100 operates as a gateway and providesauthentication and content between the service provider 102 and theconsumer 106.

In step 410, the consumer 106 provides an authentication request to thesystem 100. The authentication request includes the ID 101, associatedwith the consumer 106. In step 420, the system 100 provides anauthentication request, for consumer 106, to the service provider 102.The authentication request provided by system 100 includes an encryptedrepresentation of ID 101 and ID 126, associated with system 100. Therepresentations of Ids 101 and 126 are encrypted using public key 109.In step 430, once the service provider 102 has validated Ids 101 and126, the service provider 102 sends a validation response, indicatingauthentication was successful, to the system 100. The validationresponse includes an encrypted representation of public codeword 109.The encrypted representation of public codeword 109 is encrypted usingpublic key 127. In step 440, system 100 provides a validation responseto consumer 106. The validation response includes an encryptedrepresentation of public key 127. The encrypted representation of publickey 127 is encrypted using public codeword 109.

In step 450, the consumer 106 sends a service request to the system 100.The service request is encrypted by consumer 106 using public key 127.In step 460, response to the service request of step 450, the system 100sends the consumer 106 an acceptance. The acceptance includes a codewordvalue, which is encrypted using public codeword 109. In one embodiment,the codeword value is randomly generated by SOC 120, such as throughcodeword generator 180 (FIG. 1). In step 470, the system 100 providesscrambled content to the consumer 106. The content is scrambled usingthe codeword provided to the consumer 106 in step 460.

FIGS. 5 and 6 illustrate specific embodiments of the present disclosurerelating to decoupling of protected memory from external interfaces ofan SOC. In FIG. 5, at step 501, an unauthorized access to protectedmemory is requested. In one embodiment, an unauthorized access is anyaccess of a private key location by a device other than the decryptionengine. In another embodiment, an unauthorized access is a request thatwould provide information to a location that would potentially make dataat the protected location observable external the system.

At step 502, the protected memory is erased in response to the request.Either some or all of the protected memory can be erased in response toany and all requests. In one embodiment, only the specific locationbeing accessed is erased.

At step 503, access to the protected memory is allowed after it has beenerased. In this manner, the protected memory is decoupled from externalinterfaces in that the contents of the protected memory cannot beprovided to external interfaces.

In FIG. 6, at step 601, an access to protected memory is requested.

At step 602, a determination is made whether the system is in a testmode. If not in test mode, flow proceeds to step 608, where the accessrequest is denied. As indicated in block 611, the access can be deniedby disabling access to the protected memory, or by providing dummy datain response to the request. By denying the request for data stored atthe protected memory when not in test mode, it remains decoupled fromthe external interface.

When in test mode, the flow proceeds from step 602 to step 603. At step603, the protected memory is erased in response to being in test mode.Block 612 indicates that the protected memory can all be erased inresponse to merely entering test mode. Alternatively, protected memorycan be erased as it is requested during test mode. In this manner, theprotected memory remains decoupled from the external interfaces of theSOC.

At step 604, externally observable accesses are allowed after theprotected memory is erased.

In the preceding detailed description of the embodiments, reference hasbeen made to the accompanying drawings which form a part thereof, and inwhich is shown by way of illustration specific embodiments in which thedisclosure may be practiced. These embodiments are described insufficient detail to enable those skilled in the art to practice thedisclosure, and it is to be understood that other embodiments may beutilized and that logical, mechanical and electrical changes may be madewithout departing from the spirit or scope of the disclosure. To avoiddetail not necessary to enable those skilled in the art to practice thedisclosure, the description may omit certain information known to thoseskilled in the art. Furthermore, many other varied embodiments thatincorporate the teachings of the disclosure may be easily constructed bythose skilled in the art. Accordingly, the present disclosure is notintended to be limited to the specific form set forth herein, but on thecontrary, it is intended to cover such alternatives, modifications, andequivalents, as can be reasonably included within the spirit and scopeof the disclosure. The preceding detailed description is, therefore, notto be taken in a limiting sense, and the scope of the present disclosureis defined only by the appended claims.

1. A system on a chip (SOC) device comprising: external outputinterfaces to provide information from the SOC device; external inputinterfaces to provide information to the SOC device; a first securestorage location operably de-coupled from all external output nodes ofthe SOC device during a normal mode of operation to preventrepresentations of data to be stored at the first secure storagelocation from being provided at an external output interface; and adecryption engine comprising a first data input, a private key inputcoupled to a first portion of the first secure storage location, and anoutput coupled to a second secure storage location, the decryptionengine operable to determine decrypted data from data received at thefirst data input based on a private key received at the private keyinput, and further operable to write the decrypted data only to thefirst secure memory location and the second secure storage location. 2.The system of claim 1, wherein the first storage location is operablydecoupled from all external devices by preventing access to the firststorage location.
 3. The system of claim 1, wherein the first storagelocation is operably decoupled from all external devices by destroyingthe data at the first storage location in response to being accessed. 4.The system of claim 1, wherein a second secure storage location coupledto the output of the decryption engine is operably de-coupled from allexternal output nodes of the SOC device during a normal mode ofoperation to prevent data stored at the second secure storage locationfrom being provided at an external output interface.
 5. The method ofclaim 4, wherein a first portion of the first secure storage location isa write-once storage location.
 6. The method of claim 4, wherein thefirst portion of the first secure storage location is a write-manystorage location.
 7. The system of claim 4, wherein a first portion ofthe first secure storage location comprises a non-volatile storagelocation for a first private key storage location.
 8. The system ofclaim 7, wherein the first secure storage location comprises a pluralityof private key storage locations.
 9. The system of claim 8, wherein theplurality of private key storage locations are part of the first portionof the first secure storage location.
 10. The system of claim 1, whereinthe decryption engine is operable to execute a decryption algorithm inparallel in hardware.
 11. The system of claim 1 further comprising aunique SOC identifier.
 12. The system of claim 4 further comprising: adescrambler comprising a first data input, a control word input coupledto a first portion of the second secure storage location during normaloperation, and an output, the descrambler operable to access a controlword only from the second secured storage location, wherein the controlword is used by the descrambler to descramble scrambled data.
 13. Thesystem of claim 12 further comprising a random number generatorcomprising an output, the random number generator operable to provide arandom number at the output.
 14. The system of claim 13, wherein theoutput of the random number generator is coupled to the second securestorage location.
 15. The system of claim 14, wherein the output of therandom number generator is operably coupled to have exclusive writeaccess to a predefined location of the second secure storage locationduring normal operation.
 16. The system of claim 15 further comprising:an encryption engine comprising a first data input coupled to the secondsecure storage location, a public key input to receive a public key, andan output to provide an encrypted representation of data received at thefirst data input.
 17. The system of claim 16, where in the encryptionengine is operable to provide the encrypted representation to anexternal output interface.
 18. The system of claim 17, where in thefirst secure storage location being operably de-coupled from allexternal output nodes of the SOC device further comprises the firstsecure storage location being de-coupled from the data input and thepublic key input of the encryption engine.
 19. The system of claim 18further comprising a transcoder operably coupled to the output of thedescrambler to receive a first image having a first resolution and toprovide a second image, based on the first image, having a secondresolution, the second resolution being less than the first resolution.20. The system of claim 18 further comprising a transcoder operablycoupled to the output of the descrambler to receive a first image at afirst bit rate and to provide a second image, based on the first image,having a second bit rate, the second resolution being less than thefirst resolution.